(function() {

	'use strict';

	angular.module("ielApp")
	.factory('EntradaProdutoFactory', ['$http', '$q', '$window', function($http, $q, $window){

		function listaDeEntrada(){

			var retorno = $q.defer();

			$http.get('/EstoqueBackEndVersao1.0/rest/entradaProduto/listaDeEntrada').success(function(data) {

				retorno.resolve(data);
			})
			.error(function() {

				alert("Aconteceu algo ruim! Verifique sua conexão de internet");
			}); 


			return retorno.promise;

		};
		
		function listarProdutos() {
			
			var retorno = $q.defer();

			$http.get('/EstoqueBackEndVersao1.0/rest/produto/listarProdutos').success(function(data) {

				retorno.resolve(data);
			})
			.error(function() {

				alert("Aconteceu algo ruim! Verifique sua conexão de internet");
			}); 


			return retorno.promise;
			
		}
		
		function salvar(produto) {
			
			$http.post('/EstoqueBackEndVersao1.0/rest/entradaProduto/salvar', produto)
			.success(function() {
				alert("cadastrado com sucesso!");
				$window.location.reload();
			})
			.error(function() {
				alert("algum ruim aconteceu");
			})
		}
		
		function deletar(id, produto) {
			
			if(window.confirm("Tem certeza que deseja excluir " + produto.qtde + " unidade(s) do produto " + produto.produto.descricao + "?")){
		
			$http.post('/EstoqueBackEndVersao1.0/rest/entradaProduto/excluir/'+ id).success(function(data) {

				alert("excluído com sucesso!")
				$window.location.reload();
			})
			.error(function() {

				alert("Aconteceu algo ruim! Verifique sua conexão de internet");
			}); 

			}else {
				
			}
			
			
		}
		
		return {
			
			listaDeEntrada: listaDeEntrada,
			listarProdutos: listarProdutos,
			salvar: salvar,
			deletar: deletar
		}

	}]);

}());
